﻿using System;
using System.Collections.Generic;

namespace Abp.Auditing
{
    /// <summary>
    /// Used to configure auditing.
    /// 用于配置审计。
    /// </summary>
    public interface IAuditingConfiguration
    {
        /// <summary>
        /// Used to enable/disable auditing system.
        /// Default: true. Set false to completely disable it.
        /// 用于启动/禁用审计系统。
        /// 默认为真。设置为假将彻底禁用它。
        /// </summary>
        bool IsEnabled { get; set; }

        /// <summary>
        /// Set true to enable saving audit logs if current user is not logged in.
        /// Default: false.
        /// 当设置为真时，如果当前用户没有登录也启用保存审计日志。
        /// 默认为假。
        /// </summary>
        bool IsEnabledForAnonymousUsers { get; set; }

        /// <summary>
        /// List of selectors to select classes/interfaces which should be audited as default.
        /// 选择器列表，选择应该被默认审计的类/接口。
        /// </summary>
        IAuditingSelectorList Selectors { get; }

        /// <summary>
        /// Ignored types for serialization on audit logging.
        /// 在审计日志中序列化时忽略的类型。
        /// </summary>
        List<Type> IgnoredTypes { get; }
    }
}